package com.hh.utils;

import lombok.Data;

//用于处理返回给前端的数据信息
//我们不能混乱的返回不同种类信息给前端，因此将所有可能性封装在一个实体类，处理对前端传值的反馈
@Data
public class ResultVo<T> {

    private String message;//存放报错信息

    private boolean success;//存放判断数据校验是否成功

    private T data;//存放数据，任何泛型都支持，对象，集合，单个数据都可以

    private T jizhang;//存放数据，任何泛型都支持，对象，集合，单个数据都可以

    private T money;//存放数据，任何泛型都支持，对象，集合，单个数据都可以




    //解决每次请求校验过程代码冗余问题
    public static ResultVo error(String message){//将错误信息传过来（别不知道这个参数是哪里来的。。。。）
        ResultVo resultVo=new ResultVo();
        resultVo.setSuccess(false);
        resultVo.setMessage(message);
        return  resultVo;
    }
    //返回成功的消息
    public static ResultVo success(String message){//将错误信息传过来（别不知道这个参数是哪里来的。。。。）
        ResultVo resultVo=new ResultVo();
        resultVo.setSuccess(true);
        resultVo.setMessage(message);
        return  resultVo;
    }
    //有错误信息的，自然也有通过校验后的返回方法
    public static<T> ResultVo success(T data){//通泛型，传入的可以是任何数据类型
        ResultVo resultVo=new ResultVo();
        resultVo.setData(data);
        resultVo.setSuccess(true);
        return resultVo;
    }
    public static<T> ResultVo success(T data,T jizhang, T money){//通泛型，传入的可以是任何数据类型
        ResultVo resultVo=new ResultVo();
        resultVo.setData(data);
        resultVo.setJizhang(jizhang);
        resultVo.setMoney(money);
        resultVo.setSuccess(true);
        return resultVo;
    }
    public static<T> ResultVo success(){//不需要传值的数据校验
        ResultVo resultVo =new ResultVo();
        resultVo.setData(null);
        resultVo.setSuccess(true);
        return resultVo;
    }
}
